home *** CD-ROM | disk | FTP | other *** search
/ 8bitfiles.net/archives / archives.tar / archives / compuserve-file-archive / 22 Graphics & Utilities / 1520.BIN / 1520 TANK (.txt) < prev    next >
Encoding:
Commodore BASIC  |  2019-04-13  |  8.4 KB  |  230 lines

  1. 1 REM   WRITTEN AND PUT INTO THE PUBLIC         DOMAIN BY P.CLOWER IN 1989
  2. 2 REM
  3. 10 PRINT"[147]  THIS PROGRAM DRAWS AN M60 TANK"
  4. 12 PRINT"  ON THE COMMODORE 1520 PLOTTER."
  5. 14 PRINT"  SPOOL OUT ABOUT 3 INCHES OF PAPER,"
  6. 16 PRINT"  THEN HIT ANY KEY TO START..."
  7. 20 GETA$:IFA$=""THEN20
  8. 50 OPEN1,6,1:OPEN2,6,2:C=0:OPEN4,6
  9. 60 PRINT#2,C:DIMX(15),Y(15)
  10. 95 FORCT=0TO12:READX(CT),Y(CT):NEXT:REM    BOGIE POSITIONS
  11. 100 FOR WHEEL=1 TO 7:READ X,Y
  12. 105 PRINT#1,"M";X,Y:PRINT#1,"I"
  13. 110 FOR R=31TO 35STEP4:GOSUB1000:NEXT R
  14. 120 R=20:GOSUB1000
  15. 130 R=12:GOSUB1000
  16. 140 R=16:N=10:GOSUB1030
  17. 144 IF WHEEL=1THENPRINT#1,"M";133,-280:PRINT#1,"D";110,-320
  18. 146 IF WHEEL>2THEN TC=12:GOSUB1200:GOSUB1205
  19. 150 NEXT WHEEL
  20. 155 PRINT#1,"M";115,-828:PRINT#1,"D";142,-875:REM CHASSIS EDGE
  21. 160 FOR WHEEL=1 TO 3:READX,Y
  22. 170 PRINT#1,"M";X,Y:PRINT#1,"I"
  23. 180 FOR R=17TO19STEP 2:GOSUB1000:NEXT R
  24. 190 R=6:GOSUB1000
  25. 200 R=11:N=6:GOSUB1030:NEXT WHEEL
  26. 210 READX,Y:PRINT#1,"M";X,Y:PRINT#1,"I"
  27. 220 N=11:R0=25:R1=36:GOSUB1070:REM GEAR
  28. 230 R=17:GOSUB1000
  29. 240 R=11:N=8:GOSUB1030
  30. 250 REM TREADS
  31. 280 PRINT#1,"M",203,-252:PRINT#1,"I":REM TOP TREADS
  32. 285 FOR TR=1TO6:IFTR=1THENPRINT#1,"R";1,-18:PRINT#1,"I":GOSUB1140:NEXT TR
  33. 290 PRINT#1,"J";1,-18:PRINT#1,"I":GOSUB1140:NEXT TR
  34. 300 FOR TR=1TO20:PRINT#1,"I":GOSUB1140:NEXT TR
  35. 310 FOR TR=1TO8:PRINT#1,"J";-1,-18:PRINT#1,"I":GOSUB1140:NEXT TR
  36. 330 REM
  37. 335 REM ANGLED TREADS
  38. 340 X(1)=-9:X(2)=-9:X(3)=-5:X(4)=5:X(5)=9:X(6)=9:X(7)=-9:Y(7)=34
  39. 345 Y(1)=34:Y(2)=36:Y(3)=44:Y(4)=44:Y(5)=36:Y(6)=34:REM DEF. FOR ROTATED TREAD
  40. 350 PRINT#1,"M";168,-272:PRINT#1,"I":REM WHEEL CENTER
  41. 360 I1=-5*(null)/12:I2=5*(null)/12:MX=0:MY=0:GOSUB1170
  42. 365 DX=105-168:DY=-355+272:I1=(null)/4:I2=I1:MX=0:MY=0
  43. 370 FOR TR=1TO6:MX=MX+DX/6:MY=MY+DY/6
  44. 375 GOSUB1170:NEXT TR
  45. 390 PRINT#1,"M";105,-355:PRINT#1,"I":REM WHEEL CENTER
  46. 395 I1=5*(null)/12:I2=5*(null)/12:MX=0:MY=0:GOSUB1170
  47. 400 PRINT#1,"M";70,-352:REM BTTM TREADS
  48. 410 FOR TR=0 TO 24:PRINT#1,"I":GOSUB1110:NEXT TR
  49. 420 PRINT#1,"M";105,-795:PRINT#1,"I":REM WHEEL CENTER
  50. 430 I1=7*(null)/12:I2=9*(null)/12:MX=0:MY=0:GOSUB1170
  51. 440 DX=168-105:DY=-880+795:I1=9*(null)/12:I2=I1:MX=0:MY=0
  52. 450 FOR TR=1TO6:MX=MX+DX/6:MY=MY+DY/6
  53. 460 GOSUB1170:NEXT TR
  54. 470 PRINT#1,"M";168,-880:PRINT#1,"I":REM WHEEL CENTER
  55. 480 I1=11*(null)/12:I2=17*(null)/12:MX=0:MY=0:GOSUB1170:REM TREADS AROUND GEAR
  56. 490 FORCT=0TO12:READX(CT),Y(CT):NEXT:REM SHOCK ABSORBER POINTS
  57. 500 PRINT#1,"M";134,-779:PRINT#1,"I":TC=12:GOSUB1200
  58. 510 PRINT#1,"M";134,-426:PRINT#1,"I":TC=12:GOSUB1200
  59. 520 PRINT#1,"M";134,-339:PRINT#1,"I":TC=12:GOSUB1200
  60. 525 REM CHASSIS LINE INSIDE TREADS
  61. 530 FOR SEG=1TO5:READ Y:PRINT#1,"M";180,Y:READ Y:PRINT#1,"D";180,Y:NEXT SEG
  62. 534 FOR SEG=1TO2:READX,Y:PRINT#1,"M";X,Y:FOR PT=2TO6:READX,Y
  63. 536 PRINT#1,"D";X,Y:NEXT PT:NEXT SEG
  64. 538 REM
  65. 539 REM
  66. 540 REM   CHASSIS REAR
  67. 542 REM READX:IFX<>999THEN542
  68. 550 PRINT#1,"M";200,-900:PRINT#1,"I"
  69. 555 READX,Y:PRINT#1,"R";X,Y
  70. 560 FOR PT=1TO12:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  71. 565 READX,Y:PRINT#1,"R";X,Y:FOR PT=1TO40:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  72. 570 REM
  73. 575 REM CHASSIS FRONT
  74. 580 PRINT#1,"M";200,-300:PRINT#1,"I"
  75. 585 READX,Y:PRINT#1,"R";X,Y
  76. 590 FOR PT=1TO35:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  77. 592 REM
  78. 594 REM  TURRET FRONT
  79. 600 PRINT#1,"M";300,-400:PRINT#1,"I"
  80. 605 READX,Y:PRINT#1,"R";X,Y
  81. 610 FOR PT=1TO67:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  82. 648 REM
  83. 649 REM TURRET CENTER
  84. 650 PRINT#1,"M";300,-600:PRINT#1,"I"
  85. 655 READX,Y:PRINT#1,"R";X,Y
  86. 660 FOR PT=1TO76:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  87. 665 FOR CH=1TO5:READX,Y:PRINT#1,"R";X,Y:FORPT=1TO8:READX,Y
  88. 670 PRINT#1,"J";X,Y:NEXTPT:NEXTCH
  89. 678 REM
  90. 679 REM TURRET REAR
  91. 680 PRINT#1,"M";300,-700:PRINT#1,"I"
  92. 685 READX,Y:PRINT#1,"R";X,Y
  93. 690 FOR PT=1TO115:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  94. 700 READX,Y:PRINT#1,"R";X,Y:FOR PT=1TO6:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  95. 710 READX,Y:PRINT#1,"R";X,Y:FOR PT=1TO11:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  96. 715 READX,Y:PRINT#1,"R";X,Y:FOR PT=1TO12:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  97. 720 READX,Y:PRINT#1,"R";X,Y:FOR PT=1TO10:READX,Y:PRINT#1,"J";X,Y:NEXT PT
  98. 730 GOSUB 1220:REM TITLE TEXT
  99. 990 PRINT#1,"M",0,-980
  100. 995 CLOSE1:CLOSE2:CLOSE4:END
  101. 998 REM
  102. 999 REM  DRAW CIRCLE WITH RADIUS R
  103. 1000 FORI=0TO360 STEP 15
  104. 1005 X=R*SIN(I*(null)/180):Y=R*COS(I*(null)/180)
  105. 1010 IF I=0 THEN PRINT#1,"R";X,Y:NEXTI
  106. 1015 PRINT#1,"J";X,Y:NEXT I
  107. 1020 RETURN
  108. 1028 REM
  109. 1029 REM  DRAW CIRCLE OF N DOTS AT R
  110. 1030 FOR I=20TO360 STEP 360/N
  111. 1035 X=R*SIN(I*(null)/180):Y=R*COS(I*(null)/180)
  112. 1040 PRINT#1,"R";X,Y
  113. 1045 FOR Q=0 TO 1:FOR P=0 TO 1
  114. 1050 PRINT#1,"J";X+P,Y+Q:NEXTP:NEXTQ
  115. 1055 PRINT#1,"J";X,Y:NEXT I
  116. 1060 RETURN
  117. 1068 REM
  118. 1069 REM  DRAW GEAR FROM R0 TO R1
  119. 1070 PRINT#1,"R";0,R1
  120. 1075 FOR I=0TO360 STEP(INT(360/N+.5))
  121. 1080 X=R0*SIN(I*(null)/180+(null)/N):Y=R0*COS(I*(null)/180+(null)/N)
  122. 1085 PRINT#1,"J";X,Y
  123. 1090 X=R1*SIN(I*(null)/180+2*(null)/N):Y=R1*COS(I*(null)/180+2*(null)/N)
  124. 1095 PRINT#1,"J";X,Y:NEXTI:RETURN
  125. 1100 REM
  126. 1105 REM  BOTTOM TREAD ROUTINE
  127. 1110 PRINT#1,"J";-2,0:PRINT#1,"J";-10,-4
  128. 1115 PRINT#1,"J";-10,-14:PRINT#1,"J";-2,-18
  129. 1120 PRINT#1,"J";0,-18:PRINT#1,"J";0,0
  130. 1125 PRINT#1,"J";0,-18:RETURN
  131. 1130 REM
  132. 1135 REM  TOP TREAD ROUTINE
  133. 1140 PRINT#1,"J";2,0:PRINT#1,"J";10,-4
  134. 1145 PRINT#1,"J";10,-14:PRINT#1,"J";2,-18
  135. 1150 PRINT#1,"J";0,-18:PRINT#1,"J";0,0
  136. 1155 PRINT#1,"J";0,-18:RETURN
  137. 1160 REM
  138. 1165 REM  TREADS AROUND WHEELS
  139. 1170 FOR I=I1 TO I2 STEP(null)/6:FOR PT=1TO7
  140. 1175 X=X(PT)*COS(I)-Y(PT)*SIN(I)+MX
  141. 1180 Y=Y(PT)*COS(I)+X(PT)*SIN(I)+MY
  142. 1185 IFPT=1 THENPRINT#1,"R";X,Y:NEXT PT
  143. 1190 PRINT#1,"J";X,Y:NEXT PT
  144. 1195 NEXT I:RETURN
  145. 1200 PRINT#1,"R";X(0),Y(0):FORCT=1TOTC:PRINT#1,"J";X(CT),Y(CT):NEXT CT:RETURN
  146. 1205 PRINT#1,"R";15,40:PRINT#1,"I":R=6:GOSUB1000:RETURN:REM DRAW PIVOT
  147. 1220 OPEN44,6,4:PRINT#44,1:CLOSE44:SP=12:X=200:Y=-550
  148. 1225 OPEN3,6,3:PRINT#3,2:CLOSE3:REMSIZE
  149. 1230 A$="M60 PATTON TANK":X=125:Y=150
  150. 1235 FORN=1TOLEN(A$):FORZ=1TO5
  151. 1240 PRINT#1,"M",X+Z,Y-Z-2*N*SP
  152. 1245 PRINT#4,MID$(A$,N,1);:NEXT:NEXT
  153. 1250 PRINT#2,3:CLOSE2:REMCOLR
  154. 1255 OPEN3,6,3:PRINT#3,0:CLOSE3:REMSIZE
  155. 1260 A$="IMAGE PODUCED WITH":X=90:Y=25
  156. 1265 FORN=1 TO LEN(A$):PRINT#1,"M",X,Y-N*6:PRINT#4,MID$(A$,N,1);:NEXT
  157. 1270 A$="COMMODORE 64 AND":X=80:Y=19
  158. 1275 FORN=1 TO LEN(A$):PRINT#1,"M",X,Y-N*6:PRINT#4,MID$(A$,N,1);:NEXT
  159. 1280 A$="1520 PRINTER/PLOTTER":X=70:Y=30
  160. 1285 FORN=1 TO LEN(A$):PRINT#1,"M",X,Y-N*6:PRINT#4,MID$(A$,N,1);:NEXT
  161. 1290 RETURN
  162. 2000 DATA23,26,29,26,33,30,33,50,29,54,15,54,13,52,13,49,5,44,5,34
  163. 2005 DATA5,44,-11,50,-21,60:REM TRUCKS
  164. 2010 DATA 168,-272,105,-355,105,-442,105,-530,105,-620,105,-708,105,-795
  165. 2020 DATA190,-375,190,-580,190,-720
  166. 2030 DATA 168,-880
  167. 2039 REM  SHOCK POINTS IN NEXT LINE...
  168. 2040 DATA0,0,8,4,9,2,41,20,40,22,52,28,51,31,39,25,38,27,6,9,7,7,-1,3,0,0
  169. 2042 DATA-305,-310,-315,-360,-390,-398,-595,-705,-735,-750:REM 5 SEGMENTS
  170. 2044 DATA180,-403,180,-428,162,-433,162,-449,180,-454,180,-568
  171. 2046 DATA180,-755,180,-788,162,-793,162,-809,180,-814,180,-858
  172. 2049 REM   CHASSIS REAR SECTION
  173. 2050 DATA -40,-24,-38,-30,-30,-40,0,-50,18,-35,28,-10,30,0,30,25,23,25,23,0
  174. 2055 DATA21,-10,10,-35,-8,-47,23,25,23,260,47,260,50,257,50,130,40,115
  175. 2056 DATA23,115,35,115
  176. 2060 DATA35,30,30,25,35,30,40,25,55,22,60,22,65,25,70,45,73,143,70,45,50,-35
  177. 2065 DATA 17,-35,25,-35,25,-25,30,-25,30,-35,30,-25,35,-25,35,-35,35,-25,40,-25
  178. 2070 DATA40,-35,40,-25,45,-25,45,-35,45,-25,50,-25,50,-35,52,-42,55,-42,73,18
  179. 2075 DATA71,21,65,23
  180. 2077 REM  CHASSIS FRONT SECTION
  181. 2080 DATA-27,70,-25,81,-20,87,0,95,23,33,23,-340,28,-340,28,33
  182. 2085 DATA5,97,0,95,5,97,13,78,37,88,42,82,40,78,18,61,20,56
  183. 2090 DATA35,56,35,60,40,60,40,49,37,45,26,40,28,33,28,-20,34,-20
  184. 2095 DATA34,-25,37,-28,37,-50,34,-56,28,-33,34,-56,40,-83,43,-86,47,-87,47,-340
  185. 2097 REM DATA FOR TURRET FRONT
  186. 2100 DATA-53,10,-49,15,-46,33,-12,33,-12,23,30,-40,38,-55,43,-75,38,-55
  187. 2105 DATA30,-40,33,-34,33,-25,29,-20,-7,29,-12,33,-7,29,29,-20,33,-17
  188. 2110 DATA33,-11,38,-8,38,-3,32,6,37,10,37,15,33,20,29,21,24,18,32,6,24,18
  189. 2115 DATA16,30,35,44,31,48,18,39,20,38,14,34,16,30,14,34,0,55,0,88
  190. 2117 DATA -29,88,0,88,-7,93,-22,93
  191. 2120 DATA-7,93,-7,185,-22,185,0,185,0,255,-22,255,-7,255,-8,378,-6,380,-6,400
  192. 2123 DATA -23,400,-23,380,-6,380,-23,380
  193. 2125 DATA-21,378,-8,378,-21,378,-22,255,-25,255,-25,185,-22,185
  194. 2130 DATA-22,93,-29,88,-29,55,-46,33
  195. 2133 REM
  196. 2134 REM TURRET CENTER
  197. 2135 DATA42,129,54,125,58,122,60,109,57,106,48,105,43,125,48,105,49,104
  198. 2140 DATA55,102,58,98,58,92,56,87,50,86,50,100,49,104,50,100,50,74
  199. 2145 DATA52,67,50,74,43,75,39,73,36,67,38,62,43,59,50,62,52,67,50,62
  200. 2150 DATA50,-44,53,-44,56,-49,61,-51,67,-49,70,-43,78,-38,88,27,92,22
  201. 2155 DATA93,15,92,8,89,0,88,-8,88,-23,88,-26,150,-25,88,-23,88,-26,86,-33
  202. 2160 DATA78,-38,88,27,89,36,107,37,110,39,112,50,110,55,90,60,89,36,90,60
  203. 2165 DATA90,69,88,87,80,104,80,130,70,130,80,130,79,135,78,195,72,195
  204. 2170 DATA71,135,70,130,70,104,80,104,70,104,68,102,65,102,60,109,65,102,56,-42
  205. 2175 DATA61,-51,18,144,18,-55,17,-57,16,-57,15,-55,15,144,16,146,17,146,18,144
  206. 2180 DATA65,91,67,93,69,91,71,89,70,72,68,70,66,72,65,74,65,91
  207. 2185 DATA65,65,67,67,68,66,70,63,69,45,68,43,64,43,62,67,65,65
  208. 2190 DATA63,15,64,16,66,16,68,12,67,0,66,-2,63,-2,61,1,63,15
  209. 2195 DATA60,-20,62,-18,65,-18,66,-20,63,-37,62,-40,58,-41,57,-39,60,-20
  210. 2200 REM  TURRET REAR
  211. 2205 DATA50,56,50,35,57,32,62,27,62,18,57,13,50,10,50,-8,61,-11,70,-11
  212. 2210 DATA72,-13,140,-15,72,-17,70,-19,61,-19,61,-11,61,-19,58,-20,50,-22
  213. 2215 DATA50,-8,50,-22,50,-27,63,-29,75,-29,150,-31,75,-33,63,-33,63,-29,63,-33
  214. 2220 DATA49,-35,50,-27,49,-35,48,-40,57,-57,72,-57,75,-60,78,-65,78,-80
  215. 2225 DATA74,-83,71,-80,71,-73,78,-73,71,-73,71,-65,78,-65,71,-65,68,-64
  216. 2230 DATA68,-57,68,-64,62,-64,62,-57,62,-64,57,-64,57,-57,57,-64,55,-66,49,-62
  217. 2235 DATA40,-50,46,-47,48,-40,46,-47,40,-50,40,-15,36,-15,36,-97,40,-97
  218. 2240 DATA40,-50,40,-73,46,-74,46,-95,46,-74,52,-80,52,-88,46,-95,40,-94,40,-97
  219. 2245 DATA36,-97,36,-51,20,-53,20,-63,36,-67,36,-73,20,-70,20,-93,36,-94,20,-93
  220. 2246 DATA20,-24,16,-24,20,-24
  221. 2250 DATA20,-96,16,-96,16,-24,16,-70,4,-69,0,-73,0,-87,4,-91,16,-93,4,-91
  222. 2255 DATA0,-87,-13,-87,-17,-85,-19,-80,-19,-67,-14,-67,4,-69,0,-73,0,-83
  223. 2257 DATA-11,-83,-14,-80,-14,-67,-19,-67,-25,-65,-28,-51,-35,-35,-50,-13
  224. 2260 DATA50,30,54,28,58,25,58,20,54,17,50,15,50,30
  225. 2265 DATA40,31,40,10,37,5,36,-2,32,-8,26,-10,-7,-10,-10,-7,-10,32,-7,35
  226. 2270 DATA36,35,40,31
  227. 2275 DATA30,23,17,12,30,2,28,0,15,10,2,0,0,2,12,13,0,23,2,25,15,15,28,25,30,23
  228. 2280 DATA-27,327,-35,300,-40,278,-45,225,-44,180,-41,100
  229. 2285 DATA-40,60,-28,0,-20,-15,-12,-27,-15,-56
  230.